<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>OCILIB (C and C++ Driver for Oracle): ocilib::Pool Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">OCILIB (C and C++ Driver for Oracle)
   &#160;<span id="projectnumber">4.2.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>About</span></a></li>
      <li><a href="modules.html"><span>Documentation</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classocilib_1_1_pool.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="classocilib_1_1_pool-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">ocilib::Pool Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A connection or session <a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a>.  
 <a href="classocilib_1_1_pool.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="ocilib_8hpp_source.html">ocilib.hpp</a>&gt;</code></p>

<p>Inherits <a class="el" href="classocilib_1_1_handle_holder.html">ocilib::HandleHolder&lt; OCI_Pool * &gt;</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a52ee2b1e8d5039f64a18fe343fbb191e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e">PoolTypeValues</a> { <a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191eae703388104ab6daf2f01a90c61115543">ConnectionPool</a> = OCI_POOL_CONNECTION, 
<a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191ea2b70a2e37164fb8bdd51f5d69471f6fb">SessionPool</a> = OCI_POOL_SESSION
 }</td></tr>
<tr class="memdesc:a52ee2b1e8d5039f64a18fe343fbb191e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a> type enumerated values.  <a href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e">More...</a><br /></td></tr>
<tr class="separator:a52ee2b1e8d5039f64a18fe343fbb191e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2708939755d8f0a54f0907ba3e3436"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classocilib_1_1_enum.html">Enum</a>&lt; <a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e">PoolTypeValues</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">PoolType</a></td></tr>
<tr class="memdesc:a4e2708939755d8f0a54f0907ba3e3436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of <a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a>.  <a href="#a4e2708939755d8f0a54f0907ba3e3436">More...</a><br /></td></tr>
<tr class="separator:a4e2708939755d8f0a54f0907ba3e3436"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac4f61d5db89ea2a407a435fa82fbf8e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4f61d5db89ea2a407a435fa82fbf8e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#ac4f61d5db89ea2a407a435fa82fbf8e5">Pool</a> ()</td></tr>
<tr class="memdesc:ac4f61d5db89ea2a407a435fa82fbf8e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:ac4f61d5db89ea2a407a435fa82fbf8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b08a887f00d1eb88637e0fcf3ada489"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a0b08a887f00d1eb88637e0fcf3ada489">Pool</a> (const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;db, const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;user, const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;pwd, <a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">Pool::PoolType</a> poolType, unsigned int minSize, unsigned int maxSize, unsigned int increment=1, <a class="el" href="classocilib_1_1_environment.html#a2a210fdb61cd76e707f01f449b5281b7">Environment::SessionFlags</a> sessionFlags=<a class="el" href="classocilib_1_1_environment.html#ac583b9f6d4fd1da0282afe6e8fb774aeaafa2fca26ddd12a45b9f5e2972f41c27">Environment::SessionDefault</a>)</td></tr>
<tr class="memdesc:a0b08a887f00d1eb88637e0fcf3ada489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that creates an underlying pool with the given information.  <a href="#a0b08a887f00d1eb88637e0fcf3ada489">More...</a><br /></td></tr>
<tr class="separator:a0b08a887f00d1eb88637e0fcf3ada489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9187e73af99e3f713b7824ec7e638498"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a9187e73af99e3f713b7824ec7e638498">Open</a> (const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;db, const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;user, const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;pwd, <a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">Pool::PoolType</a> poolType, unsigned int minSize, unsigned int maxSize, unsigned int increment=1, <a class="el" href="classocilib_1_1_environment.html#a2a210fdb61cd76e707f01f449b5281b7">Environment::SessionFlags</a> sessionFlags=<a class="el" href="classocilib_1_1_environment.html#ac583b9f6d4fd1da0282afe6e8fb774aeaafa2fca26ddd12a45b9f5e2972f41c27">Environment::SessionDefault</a>)</td></tr>
<tr class="memdesc:a9187e73af99e3f713b7824ec7e638498"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an Oracle pool of connections or sessions.  <a href="#a9187e73af99e3f713b7824ec7e638498">More...</a><br /></td></tr>
<tr class="separator:a9187e73af99e3f713b7824ec7e638498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930d75ad9448914389c56f1580765620"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a930d75ad9448914389c56f1580765620"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a930d75ad9448914389c56f1580765620">Close</a> ()</td></tr>
<tr class="memdesc:a930d75ad9448914389c56f1580765620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the current Oracle pool of connections or sessions. <br /></td></tr>
<tr class="separator:a930d75ad9448914389c56f1580765620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b49ae68d9484fbb6048cea29635f402"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classocilib_1_1_connection.html">Connection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a0b49ae68d9484fbb6048cea29635f402">GetConnection</a> (const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;sessionTag=OTEXT(&quot;&quot;))</td></tr>
<tr class="memdesc:a0b49ae68d9484fbb6048cea29635f402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a connection from the pool.  <a href="#a0b49ae68d9484fbb6048cea29635f402">More...</a><br /></td></tr>
<tr class="separator:a0b49ae68d9484fbb6048cea29635f402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa62c7c0530cc7aa8d5be3992653c1c0"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#aaa62c7c0530cc7aa8d5be3992653c1c0">GetTimeout</a> () const </td></tr>
<tr class="memdesc:aaa62c7c0530cc7aa8d5be3992653c1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the idle timeout for connections/sessions in the pool.  <a href="#aaa62c7c0530cc7aa8d5be3992653c1c0">More...</a><br /></td></tr>
<tr class="separator:aaa62c7c0530cc7aa8d5be3992653c1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ae2a3b58e10c25f7921a95b2727158"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#ae4ae2a3b58e10c25f7921a95b2727158">SetTimeout</a> (unsigned int value)</td></tr>
<tr class="memdesc:ae4ae2a3b58e10c25f7921a95b2727158"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the connections/sessions idle timeout.  <a href="#ae4ae2a3b58e10c25f7921a95b2727158">More...</a><br /></td></tr>
<tr class="separator:ae4ae2a3b58e10c25f7921a95b2727158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaef56178b946f16b68ec9e0eaaa8cd43"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#aaef56178b946f16b68ec9e0eaaa8cd43">GetNoWait</a> () const </td></tr>
<tr class="memdesc:aaef56178b946f16b68ec9e0eaaa8cd43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the waiting mode used when no more connections/sessions are available from the pool.  <a href="#aaef56178b946f16b68ec9e0eaaa8cd43">More...</a><br /></td></tr>
<tr class="separator:aaef56178b946f16b68ec9e0eaaa8cd43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cf9bd8b24283c1066fc223295785cc1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a3cf9bd8b24283c1066fc223295785cc1">SetNoWait</a> (bool value)</td></tr>
<tr class="memdesc:a3cf9bd8b24283c1066fc223295785cc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the waiting mode used when no more connections/sessions are available from the pool.  <a href="#a3cf9bd8b24283c1066fc223295785cc1">More...</a><br /></td></tr>
<tr class="separator:a3cf9bd8b24283c1066fc223295785cc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b2a1f5e1ad328fbb369611a63f4793e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b2a1f5e1ad328fbb369611a63f4793e"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a5b2a1f5e1ad328fbb369611a63f4793e">GetBusyConnectionsCount</a> () const </td></tr>
<tr class="memdesc:a5b2a1f5e1ad328fbb369611a63f4793e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current number of busy connections/sessions. <br /></td></tr>
<tr class="separator:a5b2a1f5e1ad328fbb369611a63f4793e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab65a0bea2243cb19b6f38cbaca65459e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab65a0bea2243cb19b6f38cbaca65459e"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#ab65a0bea2243cb19b6f38cbaca65459e">GetOpenedConnectionsCount</a> () const </td></tr>
<tr class="memdesc:ab65a0bea2243cb19b6f38cbaca65459e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current number of opened connections/sessions. <br /></td></tr>
<tr class="separator:ab65a0bea2243cb19b6f38cbaca65459e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3274112c3ca6c3b2b73084f84a90f6ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3274112c3ca6c3b2b73084f84a90f6ae"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a3274112c3ca6c3b2b73084f84a90f6ae">GetMinSize</a> () const </td></tr>
<tr class="memdesc:a3274112c3ca6c3b2b73084f84a90f6ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum number of connections/sessions that can be opened to the database. <br /></td></tr>
<tr class="separator:a3274112c3ca6c3b2b73084f84a90f6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc97c37f8bf390be12f8b39126b8aa8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc97c37f8bf390be12f8b39126b8aa8b"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#adc97c37f8bf390be12f8b39126b8aa8b">GetMaxSize</a> () const </td></tr>
<tr class="memdesc:adc97c37f8bf390be12f8b39126b8aa8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum number of connections/sessions that can be opened to the database. <br /></td></tr>
<tr class="separator:adc97c37f8bf390be12f8b39126b8aa8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bf09b5846be6574ac7d0eafd61c2ad6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bf09b5846be6574ac7d0eafd61c2ad6"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#a5bf09b5846be6574ac7d0eafd61c2ad6">GetIncrement</a> () const </td></tr>
<tr class="memdesc:a5bf09b5846be6574ac7d0eafd61c2ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the increment for connections/sessions to be opened to the database when the pool is not full. <br /></td></tr>
<tr class="separator:a5bf09b5846be6574ac7d0eafd61c2ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada797935cfcceb9951b3c979348f5aee"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#ada797935cfcceb9951b3c979348f5aee">GetStatementCacheSize</a> () const </td></tr>
<tr class="memdesc:ada797935cfcceb9951b3c979348f5aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum number of statements to keep in the pool's statement cache.  <a href="#ada797935cfcceb9951b3c979348f5aee">More...</a><br /></td></tr>
<tr class="separator:ada797935cfcceb9951b3c979348f5aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2fb81be5059d4f0a089b704f6a8fc03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classocilib_1_1_pool.html#af2fb81be5059d4f0a089b704f6a8fc03">SetStatementCacheSize</a> (unsigned int value)</td></tr>
<tr class="memdesc:af2fb81be5059d4f0a089b704f6a8fc03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of statements to keep in the pool's statement cache.  <a href="#af2fb81be5059d4f0a089b704f6a8fc03">More...</a><br /></td></tr>
<tr class="separator:af2fb81be5059d4f0a089b704f6a8fc03"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A connection or session <a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a>. </p>
<p>This class wraps the OCILIB object handle OCI_Pool and its related methods </p>

<p>Definition at line <a class="el" href="ocilib_8hpp_source.html#l01432">1432</a> of file <a class="el" href="ocilib_8hpp_source.html">ocilib.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a4e2708939755d8f0a54f0907ba3e3436"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classocilib_1_1_enum.html">Enum</a>&lt;<a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e">PoolTypeValues</a>&gt; <a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">ocilib::Pool::PoolType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type of <a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a>. </p>
<p>Possible values are <a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e" title="Pool type enumerated values. ">Pool::PoolTypeValues</a> </p>

<p>Definition at line <a class="el" href="ocilib_8hpp_source.html#l01456">1456</a> of file <a class="el" href="ocilib_8hpp_source.html">ocilib.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="a52ee2b1e8d5039f64a18fe343fbb191e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classocilib_1_1_pool.html#a52ee2b1e8d5039f64a18fe343fbb191e">ocilib::Pool::PoolTypeValues</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a> type enumerated values. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a52ee2b1e8d5039f64a18fe343fbb191eae703388104ab6daf2f01a90c61115543"></a>ConnectionPool&#160;</td><td class="fielddoc">
<p><a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a> of Connections </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a52ee2b1e8d5039f64a18fe343fbb191ea2b70a2e37164fb8bdd51f5d69471f6fb"></a>SessionPool&#160;</td><td class="fielddoc">
<p><a class="el" href="classocilib_1_1_pool.html" title="A connection or session Pool. ">Pool</a> of stateless sessions </p>
</td></tr>
</table>

<p>Definition at line <a class="el" href="ocilib_8hpp_source.html#l01441">1441</a> of file <a class="el" href="ocilib_8hpp_source.html">ocilib.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a0b08a887f00d1eb88637e0fcf3ada489"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ocilib::Pool::Pool </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>pwd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">Pool::PoolType</a>&#160;</td>
          <td class="paramname"><em>poolType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>minSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>maxSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>increment</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classocilib_1_1_environment.html#a2a210fdb61cd76e707f01f449b5281b7">Environment::SessionFlags</a>&#160;</td>
          <td class="paramname"><em>sessionFlags</em> = <code><a class="el" href="classocilib_1_1_environment.html#ac583b9f6d4fd1da0282afe6e8fb774aeaafa2fca26ddd12a45b9f5e2972f41c27">Environment::SessionDefault</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor that creates an underlying pool with the given information. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>- Oracle Service Name </td></tr>
    <tr><td class="paramname">user</td><td>- Oracle User name </td></tr>
    <tr><td class="paramname">pwd</td><td>- Oracle User password </td></tr>
    <tr><td class="paramname">poolType</td><td>- Type of pool </td></tr>
    <tr><td class="paramname">sessionFlags</td><td>- session <a class="el" href="classocilib_1_1_flags.html" title="Template Flags template class providing some type safety to some extends for manipulating flags set v...">Flags</a> </td></tr>
    <tr><td class="paramname">minSize</td><td>- minimum number of connections/sessions that can be opened. </td></tr>
    <tr><td class="paramname">maxSize</td><td>- maximum number of connections/sessions that can be opened. </td></tr>
    <tr><td class="paramname">increment</td><td>- next increment for connections/sessions to be opened</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>it calls <a class="el" href="classocilib_1_1_pool.html#a9187e73af99e3f713b7824ec7e638498" title="Create an Oracle pool of connections or sessions. ">Open()</a> with the given parameters </dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01244">1244</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="classocilib_1_1_pool.html#a9187e73af99e3f713b7824ec7e638498">Open()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9187e73af99e3f713b7824ec7e638498"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ocilib::Pool::Open </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>pwd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classocilib_1_1_pool.html#a4e2708939755d8f0a54f0907ba3e3436">Pool::PoolType</a>&#160;</td>
          <td class="paramname"><em>poolType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>minSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>maxSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>increment</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classocilib_1_1_environment.html#a2a210fdb61cd76e707f01f449b5281b7">Environment::SessionFlags</a>&#160;</td>
          <td class="paramname"><em>sessionFlags</em> = <code><a class="el" href="classocilib_1_1_environment.html#ac583b9f6d4fd1da0282afe6e8fb774aeaafa2fca26ddd12a45b9f5e2972f41c27">Environment::SessionDefault</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create an Oracle pool of connections or sessions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>- Oracle Service Name </td></tr>
    <tr><td class="paramname">user</td><td>- Oracle User name </td></tr>
    <tr><td class="paramname">pwd</td><td>- Oracle User password </td></tr>
    <tr><td class="paramname">poolType</td><td>- Type of pool </td></tr>
    <tr><td class="paramname">sessionFlags</td><td>- session <a class="el" href="classocilib_1_1_flags.html" title="Template Flags template class providing some type safety to some extends for manipulating flags set v...">Flags</a> </td></tr>
    <tr><td class="paramname">minSize</td><td>- minimum number of connections/sessions that can be opened. </td></tr>
    <tr><td class="paramname">maxSize</td><td>- maximum number of connections/sessions that can be opened. </td></tr>
    <tr><td class="paramname">increment</td><td>- next increment for connections/sessions to be opened</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>External credentials are supported by supplying an empty string for the 'user' and 'pwd' parameters If the param 'db' is empty then a connection to the default local DB is done </dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01250">1250</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, <a class="el" href="group___ocilib_c_api_pools.html#gad7685236e3829f29e69dfa1c20c9e7e0">OCI_PoolCreate()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#gaeebfa67b8c6013c1ae9c0b97b317e1bf">OCI_PoolFree()</a>.</p>

<p>Referenced by <a class="el" href="classocilib_1_1_pool.html#a0b08a887f00d1eb88637e0fcf3ada489">Pool()</a>.</p>

</div>
</div>
<a class="anchor" id="a0b49ae68d9484fbb6048cea29635f402"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classocilib_1_1_connection.html">Connection</a> ocilib::Pool::GetConnection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceocilib.html#a01daa07e307e429b66fb80f442362237">ostring</a> &amp;&#160;</td>
          <td class="paramname"><em>sessionTag</em> = <code>OTEXT(&quot;&quot;)</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get a connection from the pool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sessionTag</td><td>- Session user tag string</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Session tagging</dt><dd></dd></dl>
<p>Session pools have a nice feature called 'session tagging' It's possible to tag a session with a string identifier when the session is returned to the pool, it keeps its tags. When requesting a connection from the session pool, it's possible to request a session that has the given 'tag' parameter If one exists, it is returned. If not and if an untagged session is available, it is then returned. So check the connection tag property with <a class="el" href="group___ocilib_c_api_connections.html#ga2703e4c986b2d6827184b10a5aa527af" title="Return the tag associated the given connection. ">OCI_GetSessionTag()</a> to find out if the returned connection is tagged or not.</p>
<p>This features is described in the OCI developer guide as the following :</p>
<p>"The tags provide a way for users to customize sessions in the pool. A client may get a default or untagged session from a pool, set certain attributes on the session (such as NLS settings), and return the session to the pool, labeling it with an appropriate tag. The user may request a session with the same tags in order to have a session with the same attributes" </p>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01264">1264</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#ga3f6f0cc0b68e1efab43b5929411dd6ab">OCI_PoolGetConnection()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa62c7c0530cc7aa8d5be3992653c1c0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ocilib::Pool::GetTimeout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the idle timeout for connections/sessions in the pool. </p>
<dl class="section note"><dt>Note</dt><dd>Connections/sessions idled for more than this time value (in seconds) are terminated</dd>
<dd>
Timeout is not available for internal pooling implementation (client &lt; 9i) </dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01269">1269</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#gab3de34dcf6eb9c5aac381074eea6f199">OCI_PoolGetTimeout()</a>.</p>

</div>
</div>
<a class="anchor" id="ae4ae2a3b58e10c25f7921a95b2727158"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ocilib::Pool::SetTimeout </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the connections/sessions idle timeout. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>- Timeout value</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>connections/sessions idle for more than this time value (in seconds) are terminated</dd>
<dd>
This call has no effect if pooling is internally implemented (client &lt; 9i) </dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01274">1274</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#ga44c2acfecf3b318b34c7301768cc0053">OCI_PoolSetTimeout()</a>.</p>

</div>
</div>
<a class="anchor" id="aaef56178b946f16b68ec9e0eaaa8cd43"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ocilib::Pool::GetNoWait </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the waiting mode used when no more connections/sessions are available from the pool. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true to wait for an available object if the pool is saturated</li>
<li>false to not wait for an available object </li>
</ul>
</dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01279">1279</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#ga4621ce46c4ff8f0b4888a7fc964c8d80">OCI_PoolGetNoWait()</a>.</p>

</div>
</div>
<a class="anchor" id="a3cf9bd8b24283c1066fc223295785cc1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ocilib::Pool::SetNoWait </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the waiting mode used when no more connections/sessions are available from the pool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>- wait for object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>For parameter value, pass :<ul>
<li>true to wait for an available object if the pool is saturated</li>
<li>false to not wait for an available object </li>
</ul>
</dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01284">1284</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#ga9831b1900b8c05e25bebd4774167317a">OCI_PoolSetNoWait()</a>.</p>

</div>
</div>
<a class="anchor" id="ada797935cfcceb9951b3c979348f5aee"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ocilib::Pool::GetStatementCacheSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the maximum number of statements to keep in the pool's statement cache. </p>
<dl class="section note"><dt>Note</dt><dd>Default value is 20 (value from Oracle Documentation) </dd></dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01314">1314</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#gacc15e6a573cd8d3fbd2e346b770a27f5">OCI_PoolGetStatementCacheSize()</a>.</p>

</div>
</div>
<a class="anchor" id="af2fb81be5059d4f0a089b704f6a8fc03"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ocilib::Pool::SetStatementCacheSize </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum number of statements to keep in the pool's statement cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>- maximum number of statements in the cache </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ocilib__impl_8hpp_source.html#l01319">1319</a> of file <a class="el" href="ocilib__impl_8hpp_source.html">ocilib_impl.hpp</a>.</p>

<p>References <a class="el" href="namespaceocilib.html#ada9a964035fd103d4ec07500f404a658">ocilib::Check()</a>, and <a class="el" href="group___ocilib_c_api_pools.html#gad6afcf9e91c4757c2025261d8135f3d4">OCI_PoolSetStatementCacheSize()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceocilib.html">ocilib</a></li><li class="navelem"><a class="el" href="classocilib_1_1_pool.html">Pool</a></li>
    <li class="footer">Generated on Mon Mar 21 2016 22:26:39 for OCILIB (C and C++ Driver for Oracle) by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
  </ul>
</div>
</body>
</html>
